home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Headers / g++ / new.h < prev    next >
C/C++ Source or Header  |  1995-02-06  |  831b  |  37 lines

  1. #ifndef _new_h
  2. #ifdef __GNUG__
  3. #pragma interface
  4. #pragma cplusplus
  5. #endif
  6. #define _new_h 1
  7.  
  8. extern "C" {
  9. #include <stddef.h>
  10. }
  11. #include <std.h>
  12.  
  13. #ifndef NO_LIBGXX_MALLOC
  14. #define MALLOC_ALIGN_MASK   7 /* ptrs aligned at 8 byte boundaries */
  15. #define MALLOC_MIN_OVERHEAD 8 /* 8 bytes of overhead per pointer */
  16. #endif
  17.  
  18. typedef void (*new_handler_t)();
  19. extern new_handler_t __new_handler;
  20. extern "C" void default_new_handler();
  21. extern "C" new_handler_t set_new_handler(new_handler_t);
  22.  
  23. #ifdef __GNUG__
  24. #define NEW(where) new { where }
  25. #endif
  26.  
  27. // default placement version of operator new
  28. static inline void *operator new(size_t, void *place) { return place; }
  29.  
  30. // provide a C++ interface to vector-resize via realloc 
  31. inline void *operator new(size_t size, void *ptr, size_t new_len)
  32. {
  33.   return realloc(ptr, new_len * size);
  34. }
  35.  
  36. #endif
  37.